When switching between alternatives in AltSwitcher, the currently
visible child is replaced with the alternative. If the original
child has the key focus when it is removed from the stage, the
focus is lost. Detect this case and manually move the focus to
the new child.
https://bugzilla.gnome.org/show_bug.cgi?id=727259
}
if (this.actor.get_child() != childToShow) {
+ let hasFocus = this.actor.contains(global.stage.get_key_focus());
this.actor.set_child(childToShow);
+ if (hasFocus)
+ childToShow.grab_key_focus();
// The actors might respond to hover, so
// sync the pointer to make sure they update.